#ifndef _SYS_UNKNOWN_TYPE_ERR_H_
#define _SYS_UNKNOWN_TYPE_ERR_H_

#include "Err.h"
#include "SysTypes.h"

#define UNKNOWN_TYPE_ERR_VTABLE(self)   ((UnknownTypeErrVTable*)((FanObj*)self)->vtable)


extern Type*    UnknownTypeErr_classType;
extern VTable*  UnknownTypeErr_classVTable;


/* [sys::UnknownTypeErr] Attributes */
struct UnknownTypeErr
{
  Err           super;
};


/* [sys::UnknownTypeErr] Virtual-table */
typedef struct UnknownTypeErrVTable
{
  ErrVTable     super;
} UnknownTypeErrVTable;


/* [sys::UnknownTypeErr] Methods and fields */
void            UnknownTypeErr_make_0(UnknownTypeErr* self);
void            UnknownTypeErr_make_1(UnknownTypeErr* self, Str* msg);
void            UnknownTypeErr_make(UnknownTypeErr* self, Str* msg, Err* cause);


/* [sys::UnknownTypeErr] Extra methods */
UnknownTypeErr* UnknownTypeErr_new(Str* msg, Err* cause);
UnknownTypeErr* UnknownTypeErr_newWithFormattedMsg(const char* msgFormat, ...);


/* [sys::UnknownTypeErr] Type-system functions */
Type*           UnknownTypeErr_initType(void);
VTable*         UnknownTypeErr_initVTable(void);
void            UnknownTypeErr_initStatic(void);


#endif
